runtime messages
To interrogate or control a grid at runtime, GuiDesigner and your program send a message to the grid, just like window functions do:

XuiSendMessage ( grid, message, v0, v1, v2, v3, kid, r1 )
XuiSendMessage ( grid, message, v0, v1, v2, v3, kid, r1$ )
XuiSendMessage ( grid, message, v0, v1, v2, v3, kid, r1$[] )

grid,kid are the grid number of the base grid and the kid within it the message is sent to. kid=0 designates the base grid. message is the message sent to grid,kid .

v0,v1,v2,v3,r1,r1$,r1$[] are values passed to the grid function in support of message . For many messages, some or all of these arguments are undefined. 0 must be passed for all undefined arguments. For some messages one or more of these arguments are assigned return values by the grid function. To receive a return value the calling function must pass a variable by reference.

example
For example your program can change the text string on the left XuiPushButton kid in a XuiDialog3B grid as follows:

XuiSendMessage ( grid, #SetTextString, 0, 0, 0, 0, 3, @" Hide " )
XuiSendMessage ( grid, #Redraw, 0, 0, 0, 0, 3, 0 )

grid contains the grid number of the XuiDialog3B grid.

#SetTextString is the message number variable that tells grids to set their text string to the value in the r1$ argument.

v0,v1,v2,v3 are undefined in SetTextString messages, so they contain 0.

kid=3 designates the left pushbutton in XuiDialog3B grids. Kids are numbered from zero, starting with the base grid itself, followed by its kids in the order created or as sorted by Grid SortKids:

kid #0 = Dialog3B
kid #1 = Label
kid #2 = TextLine
kid #3 = LeftButton
kid #4 = CenterButton
kid #5 = RightButton

r1$ contains the text string referred to by the #SetTextString message. Since only the final argument of grid functions can receive non - XLONG values, text strings are always passed in r1$ . Numeric arguments are passed in as many of the v0,v1,v2,v3,r1 arguments as necessary.